import java.util.HashMap;
import java.util.Map;

/**
 * @author Kevin
 * @Data 2021/2/20
 */
class Solution {
    public static void main(String[] args) {
        String[] strs = {"dog", "dca", "darguement"};
        System.out.println(longestCommonPrefix(strs));
    }

    public static String longestCommonPrefix(String[] strs) {
        int len = strs.length; //数组长度
        int min = 0;  //长度最短的字符串的索引下标
        //空串的话，返回""
        if (len < 1) {
            return "";
        }
        int minLen = strs[0].length();  //长度最短字符串的长度
        //找到串数组中长度最小的索引以及其长度
        for (int i = 0; i < len; i++) {
            if (minLen > strs[i].length()) {
                minLen = strs[i].length();
                min = i;
            }
        }
        //总第一个字符开始比较，最多比较（串数组中长度最小）次
        for (int i = 0; i < minLen; i++) {
            for (int j = 0; j < len - 1; j++) {
                //出现不匹配，则确定索引值，截取（0，该索引）
                if (strs[j].charAt(i) != strs[j + 1].charAt(i)) {
                    return strs[0].substring(0, i);
                }
            }
        }
        //没有出现不匹配的情况则返回最短的那个串，即为公共子串
        return strs[min];
    }
}